1. Field of the Invention
The present invention relates generally to video play, and more particularly to a client for playing video stream and a method thereof that adaptively control the video play in accordance with variable communication environments and the size of the video stream to be transmitted.
2. Description of the Prior Art
A conventional streaming system is illustrated in FIG. 1. The conventional system includes a streaming server, client terminals (hereinafter referred to as “clients”), and a packet network (hereinafter referred to as a “channel”). Media are transmitted from the server to the clients using a transport protocol such as a User Datagram Protocol (UDP), Real Time Protocol (RTP), Transmission Control Protocol (TCP), Hypertext Transfer Protocol (HTTP), etc.
For more efficient streaming, the system may use a streaming control channel such as a Real Time Streaming Protocol (RTSP), Microsoft Media Server (MMS), etc.
Meanwhile, the quality of the video stream received by the client is as important as video data itself since there is no person who wants to view video frames having many errors. Main factors that affect the quality of the video stream may be a bandwidth-limited network, packet loss, delay jitter, etc.
(i) Bandwidth-Limited Network
It is sometimes difficult to secure a sufficient bandwidth for transmitting video streams. In order to solve this, video streams having a low bandwidth may be used. In the case of the video stream compressed by a codec that supports the scalability, it is easy to convert the video stream so that it has a lower bandwidth. However, in the case of a general Video on Demand (VOD), the scalability is hardly supported, and thus it is difficult to reduce the bandwidth of the compressed video stream.
(ii) Packet Loss
Packets transmitted from a server may be lost and not reach a client. In this case, a video output corresponding to the lost packets does not appear on the client side.
A user may have difficulty in sensing an error caused by such a packet loss through the use of a proper error concealment algorithm. For instance, in the MPEG-2 stream, an error concealment algorithm for reconstructing lost motion vectors using adjacent motion vectors may be used.
(iii) Delay Jitter
It is difficult to estimate an accurate reaching time of the packet transmitted through a packet transmission network. This may cause an unwanted result on the client side. Although a video decoder waits for the packet, it may not reach at a desired time. This problem may be solved through the use of a pre-roll buffer on the client side. Although the pre-roll buffer causes an additional delay during the play of the video stream, it makes the problems caused by the delay jitter to be almost solved.
As the prior art for solving the problems of the video streaming using the network as described above, a dynamic streaming bandwidth control, an adaptive media play, etc., have been proposed.
The dynamic streaming bandwidth control will be explained. A client can feed information about the amount of data that remains in a client buffer back to a server. If the level of the client buffer is low, the streaming rate increases, while if the level of the client buffer is high, the streaming rate decreases. Since the client buffer is empty at the initial stage of streaming, the client requests the server to stream more promptly. Accordingly, the startup delay or pre-roll delay of the streaming can be reduced.
In the method as described above, a considerable amount of video data is cached, and thus the client may not be affected by a slight change of bandwidth. U.S. Pat. No. 6,292,834 entitled “Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network” discloses a basic algorithm for the above-described method, which is illustrated in FIG. 2.
Meanwhile, the adaptive media play method is used as an algorithm for the concealment of errors occurring due to a buffer underflow. In this method, if the buffer level is lowered below a specified threshold value, the video play speed becomes slow, but the video play is not stopped. Then, if the buffer level is heightened above the specified threshold value, the video play speed returns to the original speed. However, this method increases the total play time of the media.
The dynamic bandwidth control algorithm as described above operates properly if a sufficient bandwidth is secured, but does not operate properly if an available bandwidth is narrow. A multicast communication in a wireless LAN may serve as an example. A wireless interface card limits the available bandwidth to about 10% of the whole available bandwidth. However, it is common to be faced with a case that the bandwidth of a data stream to be transmitted, i.e., a source stream, is wider than the available bandwidth. In this case, the bandwidth of the source stream should be reduced, and if the compression codec does not support the scalability, the server side will experience congestion.
Meanwhile, if successive losses or errors occur during the transfer of a video stream through a network, the video play may be stopped at times.
Although the conventional adaptive media play method refers to a method of a video stream play, which is transmitted at a low speed, without a freezing phenomenon, it has no relation with or is not suitable to the solution of the problems that successive losses or errors occur in packets that constitute the video stream.